﻿using UnityEditor;
using UnityEngine;
using System.IO;

public class TextureCopyScript : EditorWindow
{
    [MenuItem("Tools/Copy Texture _F5")]
    static void CopyTexture()
    {
        // 获取当前选中的对象
        Object selectedObject = Selection.activeObject;
        if (selectedObject == null)
        {
            Debug.LogError("未选中任何对象，请选择一个贴图。");
            return;
        }

        // 检查选中的对象是否为贴图
        if (!(selectedObject is Texture2D))
        {
            Debug.LogError("选中的对象不是贴图，请选择一个贴图。");
            return;
        }

        // 获取选中贴图的路径
        string selectedTexturePath = AssetDatabase.GetAssetPath(selectedObject);
        if (!selectedTexturePath.EndsWith("DA.png"))
        {
            EditorUtility.DisplayDialog("", "请选中_DA图", "确定");
            return;
        }
        string selectedTextureDirectory = Path.GetDirectoryName(selectedTexturePath);

       

        

        try
        {
            // 生成目标文件路径
            {
                // 要复制的文件路径
                string sourceFilePath = Path.Combine(selectedTextureDirectory, "tiling_quad_DefaultMaterial_AlbedoTransparency.png");

                // 检查源文件是否存在
                if (!File.Exists(sourceFilePath))
                {
                    Debug.LogError($"源文件 {sourceFilePath} 不存在。");
                    return;
                }
                
             
                // 复制文件
                File.Copy(sourceFilePath, selectedTexturePath, true);
                Debug.Log($"文件已成功复制到 {selectedTexturePath}。");
            }

            {
                selectedTexturePath = selectedTexturePath.Substring(0, selectedTexturePath.Length - 6) + "N.png";
                // 要复制的文件路径
                string sourceFilePath = Path.Combine(selectedTextureDirectory, "tiling_quad_DefaultMaterial_Normal.png");

                // 检查源文件是否存在
                if (!File.Exists(sourceFilePath))
                {
                    Debug.LogError($"源文件 {sourceFilePath} 不存在。");
                    return;
                }


                // 复制文件
                File.Copy(sourceFilePath, selectedTexturePath, true);
                Debug.Log($"文件已成功复制到 {selectedTexturePath}。");
            }

            {
                selectedTexturePath = selectedTexturePath.Substring(0, selectedTexturePath.Length - 5) + "MOES.png";
                // 要复制的文件路径
                string sourceFilePath = Path.Combine(selectedTextureDirectory, "tiling_quad_DefaultMaterial_MetallicSmoothness.png");

                // 检查源文件是否存在
                if (!File.Exists(sourceFilePath))
                {
                    Debug.LogError($"源文件 {sourceFilePath} 不存在。");
                    return;
                }


                // 复制文件
                File.Copy(sourceFilePath, selectedTexturePath, true);
                Debug.Log($"文件已成功复制到 {selectedTexturePath}。");
            }



            // 刷新资源数据库
            AssetDatabase.Refresh();
            EditorUtility.DisplayDialog("", "完成", "确定");
        }
        catch (System.Exception e)
        {
            Debug.LogError($"复制文件时发生错误: {e.Message}");
        }
    }
}